home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
mac
/
LOGIC Apple II 5.25" Library - ProDOS
/
PRO002.dsk
/
CALCULATOR.bas
< prev
next >
Wrap
BASIC Source File
|
2012-02-16
|
3KB
|
111 lines
10 PRINT CHR$(27);: PRINT CHR$(17): REM 40 COL.
20 TEXT : HOME
30 V = 1: GOSUB 40:V = 24: GOSUB 40: GOTO 60
40 VTAB (V): HTAB (1): FOR X = 1 TO 39: PRINT "_";: NEXT
50 RETURN
60 VTAB (5): HTAB (7)
70 PRINT "[ THIS PROGRAM IS FREEWARE ]"
80 PRINT : PRINT : HTAB (4)
90 PRINT "YOU ARE FREE TO DISTRIBUTE COPIES"
100 PRINT : HTAB (8)
110 PRINT "BUT YOU MAY NOT SELL THEM."
120 VTAB (18): HTAB (11)
130 PRINT "THE FREEWARE PROJECT"
140 PRINT : HTAB (11)
150 PRINT "WALDEN SOFTWARE, INC."
160 PRINT : HTAB (12)
170 PRINT "(C) 1984, P. LUTUS"
180 FOR PAUSE = 0 TO 2500: NEXT
190 DIM S(4):F = 57.29577951
200 R$ = "XYZT"
210 C$ = "+ - * / E 1/XXY SINCOSTANATNLOGEXPSQR^ PI F ? "
220 IF SV = 0 THEN HOME :SV = 1
230 VTAB (1): HTAB (1)
240 PRINT "FreeWare RPN Calculator": PRINT
250 FOR X = 4 TO 1 STEP -1
260 PRINT MID$ (R$,X,1);" = ";
270 PRINT S(X);" "
280 NEXT
290 PRINT
300 INPUT "Enter (?=Help) :";L$
310 IF L$ = "" THEN 220
320 GOSUB 850
330 IF LEN(L$) <3 THEN L$ = L$ +" ": GOTO 330
340 C = 1
350 IF L$ = MID$ (C$,C,3) THEN 370
360 C = C +3: IF C < LEN(C$) THEN 350
370 IF C < LEN(C$) THEN 410
380 GOSUB 480
390 S(1) = VAL(L$)
400 GOTO 220
410 GOSUB 420: GOTO 220
420 C = ((C -1)/3) +1
430 ON C GOTO 440,450,460,470,480,500,510,520,530,540,550,560,570,580,590,600,620,690
440 S(1) = S(2) +S(1): GOTO 840
450 S(1) = S(2) -S(1): GOTO 840
460 S(1) = S(2) *S(1): GOTO 840
470 S(1) = S(2)/S(1): GOTO 840
480 FOR X = 3 TO 1 STEP -1
490 S(X +1) = S(X): NEXT : RETURN
500 S(1) = 1/S(1): RETURN
510 T = S(1):S(1) = S(2):S(2) = T: RETURN
520 S(1) = SIN(S(1)/F): RETURN
530 S(1) = COS(S(1)/F): RETURN
540 S(1) = TAN(S(1)/F): RETURN
550 S(1) = ATN(S(1)) *F: RETURN
560 S(1) = LOG(S(1)): RETURN
570 S(1) = EXP(S(1)): RETURN
580 S(1) = SQR(S(1)): RETURN
590 S(1) = S(2) ^S(1): GOTO 840
600 GOSUB 480
610 S(1) = 3.1415926535898: RETURN
620 HOME :SV = 0
630 N = S(1): FOR X = 2 TO SQR(N)
640 Q = N/X: IF Q < > INT(Q) THEN 660
650 PRINT N;" / ";X;" = ";N/X
660 NEXT
670 PRINT : PRINT "(Return) :";
675 GET L$
680 RETURN
690 HOME :SV = 0
700 PRINT "Available Functions :"
710 PRINT : PRINT "Numeric Entries 1E-38 TO 1E38"
720 PRINT
730 FOR X = 1 TO LEN(C$) STEP 3
740 PRINT MID$ (C$,X,3)
750 NEXT
760 VTAB (5)
770 RESTORE
780 FOR X = 1 TO 18
790 READ L$
800 HTAB (8)
810 PRINT L$
820 NEXT
830 GOTO 670
840 S(2) = S(3):S(3) = S(4): RETURN
850 M$ = L$
860 L$ = ""
870 FOR X = 1 TO LEN(M$)
880 Q = ASC( MID$ (M$,X,1))
890 IF Q >96 THEN Q = Q -32
900 L$ = L$ + CHR$(Q)
910 NEXT
920 RETURN
930 DATA "Add X and Y"
940 DATA "Subtract X from Y"
950 DATA "Multiply X and Y"
960 DATA "Divide Y by X"
970 DATA "Enter (make a copy of X)"
980 DATA "Invert X"
990 DATA "Exchange X and Y"
1000 DATA "Sine of X (Degrees)"
1010 DATA "Cosine of X"
1020 DATA "Tangent of X"
1030 DATA "Arctangent of X"
1040 DATA "Natural Logarithm of X"
1050 DATA "Natural Exponent of X"
1060 DATA "Square Root of X"
1070 DATA "Y Raised to the X Power"
1080 DATA "3.14159266"
1090 DATA "Factors of X"
1100 DATA "This list"